home *** CD-ROM | disk | FTP | other *** search
/ CD World Haziran 1997 / CD World Haziran 1997.iso / Explorer Yardimcilari / PiXCL Tools / Vr299set.px_ / Vr299set.px
Encoding:
PiXCL source  |  1996-07-28  |  12.8 KB  |  518 lines

  1. {    Filename    : vr299set.pxl
  2.      Purpose        : Video diagnostic for VR-299
  3.     Version        : 1.2    RELEASE
  4.     Date        : 16-feb-1995
  5.     Author        : S.Dibbs, VYSOR Integration Inc
  6.  
  7.     Version        : 4.0    RELEASE
  8.     Date        : 30-may-1996
  9.     Author        : S.Dibbs, VYSOR Integration Inc
  10.  
  11. ------------------------------------------------------------------------}
  12.  
  13. Initialize:
  14.     WinGetActive(Current$)
  15.     GetScreenCaps(BITSPIXEL,BitsPerPixel)
  16.     GetScreenCaps(HORZRES,X_Pixels)
  17.     GetScreenCaps(VERTRES,Y_Pixels)
  18.  
  19.     If BitsPerPixel = 8 Then Set Title$ = "WIN95 8-bit Colour Scale v4.0"
  20.     If BitsPerPixel = 15 Then Set Title$ = "WIN95 15-bit Colour Scale v4.0"
  21.     If BitsPerPixel = 16 Then Set Title$ = "WIN95 16-bit Colour Scale v4.0"
  22.     If BitsPerPixel = 24 Then Set Title$ = "WIN95 24-bit Colour Scale v4.0"
  23.     WinTitle(Current$,Title$)
  24.     WinLocate(Title$,0,0,X_Pixels,Y_Pixels,Res)
  25.     UseBackground(TRANSPARENT,0,0,0)
  26.     DrawBackGround
  27.     UseCoordinates(PIXEL)
  28.     DirGet(SourceDir$)
  29.     Set Draw_All_Grids = 0
  30.  
  31.  
  32.     SetMenu("E&xit",Run_Leave,
  33.         ENDPOPUP,
  34.         "&Colour Wedge",Wedge,
  35.         ENDPOPUP,
  36.         "&Geometric Pattern",Geom,
  37.         ENDPOPUP,
  38.         "&Draw Grids",IGNORE,
  39.         "Grid &1",Grid,
  40.         "Grid &2",Grid2,
  41.         "Grid &3", Grid3,
  42.         "Draw &All",All_Grids,
  43.         ENDPOPUP,
  44.         "&Help",IGNORE,
  45.         "Colour Wedge",Help_Wedge,
  46.         "Geometric Pattern",Help_Pattern,
  47.         "Grids",Help_Grids,
  48.         SEPARATOR,
  49.         "&About",About,
  50.         ENDPOPUP)
  51.  
  52.  
  53. Wait_for_Input:
  54.     WaitInput()
  55.  
  56. Invert:
  57.     InvertRectangle(cx1,cy1,cx2,cy2)
  58.     Goto Wait_for_Input
  59.  
  60. Wedge:
  61.     DrawBackground
  62.     SetMouse()
  63.     WinGetClientRect("",cx1,cy1,cx2,cy2)
  64.     SetRightMouse(cx1,cy1,cx2,cy2,Invert,X,Y)
  65.     Set Red = 0
  66.     Set Green = 0
  67.     Set Blue = 0
  68.     Set X1 = 1    Set X2 = 32
  69.     Set Y1 = 11    Set Y2 = 94
  70.     UsePen(SOLID,2,255,255,255)
  71.     UseBrush(NULL,0,0,0)
  72.     DrawRectangle(0,10,1023,96)    {Gray}
  73.     DrawRectangle(0,110,1023,196)    {Red}
  74.     DrawRectangle(0,210,1023,296)    {Green}
  75.     DrawRectangle(0,320,1023,396)    {Blue}
  76.     DrawRectangle(0,410,1023,496)    {Yellow}
  77.     DrawRectangle(0,510,1023,596)    {Magenta}
  78.     DrawRectangle(0,610,1023,696)    {Cyan}
  79.     
  80. GrayLoop:
  81.     If X1 = 1025 Then Goto EndGrayLoop
  82.     UsePen(NULL,1,Red,Green,Blue)
  83.     UseBrush(SOLID,Red,Green,Blue)
  84.     DrawRectangle(X1,Y1,X2,Y2)
  85.     Set X1 = X1 + 32  Set X2 = X2 + 32
  86.     If Red < 7 Then Set Red = Red + 7
  87.     If Green < 7 Then Set Green = Green + 7
  88.     If Blue < 7 Then Set Blue = Blue + 7
  89.     If Red >= 7 Then Set Red = Red + 8
  90.     If Green >= 7 Then Set Green = Green + 8
  91.     If Blue >= 7 Then Set Blue = Blue + 8
  92.     Goto GrayLoop
  93. EndGrayLoop:    
  94.  
  95.     Set Red = 0
  96.     Set Green = 0
  97.     Set Blue = 0
  98.     Set X1 = 1    Set X2 = 32
  99.     Set Y1 = 111    Set Y2 = 194
  100. RedLoop:
  101.     If X1 = 1025 Then Goto EndRedLoop
  102.     UsePen(NULL,1,Red,Green,Blue)
  103.     UseBrush(SOLID,Red,Green,Blue)
  104.     DrawRectangle(X1,Y1,X2,Y2)
  105.     Set X1 = X1 + 32  Set X2 = X2 + 32
  106.     If Red < 7 Then Set Red = Red + 7
  107.     If Red >= 7 Then Set Red = Red + 8
  108.     Goto RedLoop
  109. EndRedLoop:
  110.     Set Red = 0
  111.     Set Green = 0
  112.     Set Blue = 0
  113.     Set X1 = 1    Set X2 = 32
  114.     Set Y1 = 211    Set Y2 = 294
  115. GreenLoop:
  116.     If X1 = 1025 Then Goto EndGreenLoop
  117.     UsePen(NULL,1,Red,Green,Blue)
  118.     UseBrush(SOLID,Red,Green,Blue)
  119.     DrawRectangle(X1,Y1,X2,Y2)
  120.     Set X1 = X1 + 32  Set X2 = X2 + 32
  121.     If Green < 7 Then Set Green = Green + 7
  122.     If Green >= 7 Then Set Green = Green + 8
  123.     Goto GreenLoop
  124. EndGreenLoop:
  125.  
  126.     Set Red = 0
  127.     Set Green = 0
  128.     Set Blue = 0
  129.     Set X1 = 1    Set X2 = 32
  130.     Set Y1 = 321    Set Y2 = 394
  131. BlueLoop:
  132.     If X1 = 1025 Then Goto EndBlueLoop
  133.     UsePen(NULL,1,Red,Green,Blue)
  134.     UseBrush(SOLID,Red,Green,Blue)
  135.     DrawRectangle(X1,Y1,X2,Y2)
  136.     Set X1 = X1 + 32  Set X2 = X2 + 32
  137.     If Blue < 7 Then Set Blue = Blue + 7
  138.     If Blue >= 7 Then Set Blue = Blue + 8
  139.     Goto BlueLoop
  140. EndBlueLoop:
  141.  
  142.     Set Red = 0
  143.     Set Green = 0
  144.     Set Blue = 0
  145.     Set X1 = 1    Set X2 = 32
  146.     Set Y1 = 411    Set Y2 = 494
  147. YellowLoop:
  148.     If X1 = 1025 Then Goto EndYellowLoop
  149.     UsePen(NULL,1,Red,Green,Blue)
  150.     UseBrush(SOLID,Red,Green,Blue)
  151.     DrawRectangle(X1,Y1,X2,Y2)
  152.     Set X1 = X1 + 32  Set X2 = X2 + 32
  153.     If Red < 7 Then Set Red = Red + 7
  154.     If Green < 7 Then Set Green = Green + 7
  155.     If Red >= 7 Then Set Red = Red + 8
  156.     If Green >= 7 Then Set Green = Green + 8
  157.     Goto YellowLoop
  158. EndYellowLoop:
  159.  
  160.     Set Red = 0
  161.     Set Green = 0
  162.     Set Blue = 0
  163.     Set X1 = 1    Set X2 = 32
  164.     Set Y1 = 511    Set Y2 = 594
  165. MagentaLoop:
  166.     If X1 = 1025 Then Goto EndMagentaLoop
  167.     UsePen(NULL,1,Red,Green,Blue)
  168.     UseBrush(SOLID,Red,Green,Blue)
  169.     DrawRectangle(X1,Y1,X2,Y2)
  170.     Set X1 = X1 + 32  Set X2 = X2 + 32
  171.     If Red < 7 Then Set Red = Red + 7
  172.     If Blue < 7 Then Set Blue = Blue + 7
  173.     If Red >= 7 Then Set Red = Red + 8
  174.     If Blue >= 7 Then Set Blue = Blue + 8
  175.     Goto MagentaLoop
  176. EndMagentaLoop:
  177.  
  178.     Set Red = 0
  179.     Set Green = 0
  180.     Set Blue = 0
  181.     Set X1 = 1    Set X2 = 32
  182.     Set Y1 = 611    Set Y2 = 694
  183. CyanLoop:
  184.     If X1 = 1025 Then Goto EndCyanLoop
  185.     UsePen(NULL,1,Red,Green,Blue)
  186.     UseBrush(SOLID,Red,Green,Blue)
  187.     DrawRectangle(X1,Y1,X2,Y2)
  188.     Set X1 = X1 + 32  Set X2 = X2 + 32
  189.     If Green < 7 Then Set Green = Green + 7
  190.     If Blue < 7 Then Set Blue = Blue + 7
  191.     If Green >= 7 Then Set Green = Green + 8
  192.     If Blue >= 7 Then Set Blue = Blue + 8
  193.     Goto CyanLoop
  194. EndCyanLoop:
  195.     Goto Wait_for_Input
  196.  
  197.  
  198.  
  199.  
  200. GetXY:
  201.     Str(X,X$) Str(Y,Y$)
  202.     Set Co_ords$ = "X = " + X$ 
  203.     Set Co_ords$ = Co_ords$ + "   Y = "
  204.     Set Co_ords$ = Co_ords$ + Y$
  205.     MessageBox(OK,1,INFORMATION,Co_ords$,"Mouse Co-ordinates",Res)
  206.     Goto Wait_for_input
  207.  
  208.  
  209. All_Grids:
  210.     Set Draw_All_Grids = 1
  211. Grid:
  212.     DrawBackGround
  213.     SetMouse()
  214.     Set Size$ = "33"
  215.     If Draw_All_Grids = 1 Then Goto Grid_a
  216.     TextBox("Range is 1 - 64","Enter Grid Spacing",Size$,Btn)
  217.     If Btn = 2 Then Goto Wait_for_Input
  218. Grid_a:
  219.     Val(Size$,GridSize,Res)
  220.     If Res = 0 Then Goto Grid
  221.     If GridSize > 64 Then Goto Grid
  222.     UsePen(SOLID,1,255,255,255)
  223.     Set X1 = 0 Set X2 = 1024
  224.     Set Y1 = 0 Set Y2 = 768
  225. GridLoopX:
  226.     DrawLine(X1,Y1,X2,Y1)
  227.     Set Y1 = Y1 + GridSize
  228.     If Y1 < 768 Then Goto GridLoopX
  229.     Set Y1 = 0     Set Y2 = 693
  230. GridLoopY:
  231.     DrawLine(X1,Y1,X1,Y2)
  232.     Set X1 = X1 + GridSize
  233.     If X1 < 1024 Then Goto GridLoopY
  234.     
  235.     If Draw_All_Grids = 1 Then Goto Grid2
  236.     Goto Wait_for_Input
  237.  
  238.  
  239. Grid2:
  240.     WinGetClientRect("",cx1,cy1,cx2,cy2)
  241.     SetRightMouse(cx1,cy1,cx2,cy2,Invert,X,Y)
  242.     SetMouse()
  243.     Set X1 = 0 Set X2 = 1024
  244.     Set Y1 = 0 Set Y2 = 768
  245.     UseBrush(NULL,0,0,0)
  246.     UsePen(SOLID,1,255,255,255)    
  247.     DrawRectangle(X1,Y1,X2,Y2)    
  248.     FileExist("square.bmp",Res)
  249.     If Res = 0 then Gosub SData
  250.     If Res = 1 then Gosub Bitmaps
  251.     UseBrush(SOLID,0,0,0)
  252.     DrawRectangle(203,178,813,529)
  253.     DrawLine(204,295,812,295)
  254.     DrawLine(204,412,812,412)
  255. InitRed:
  256.     Red = 0
  257.     Green = 0
  258.     Blue = 0
  259.     X1 = 204     X2 = 212
  260.     Y1 = 180    Y2 = 294
  261. RedScale:
  262.     If X1 >= 810 then Goto EndRed    
  263.     UsePen(NULL,1, Red, Green, Blue)
  264.     UseBrush(SOLID,Red,Green,Blue)
  265.     DrawRectangle(X1,Y1,X2,Y2)
  266.     X1 = X1 + 7    X2 = X2 + 7
  267.     Red = Red + 3
  268.     If Red > 255 Then Red = 255
  269.     Goto RedScale
  270. EndRed:
  271. InitGreen:
  272.     Set Red = 0
  273.     Set Green = 0
  274.     Set Blue = 0
  275.     Set X1 = 204     Set X2 = 212
  276.     Set Y1 = 296    Set Y2 = 411
  277. GreenScale:
  278.     If X1 >= 810 then Goto EndGreen    
  279.     UsePen(NULL,1, Red, Green, Blue)
  280.     UseBrush(SOLID,Red,Green,Blue)
  281.     DrawRectangle(X1,Y1,X2,Y2)
  282.     Set X1 = X1 + 7        Set X2 = X2 + 7
  283.     Set Green = Green + 3    
  284.     If Green > 255 Then Green = 255
  285.     Goto GreenScale
  286. EndGreen:
  287. InitBlue:
  288.     Set Red = 0
  289.     Set Green = 0
  290.     Set Blue = 0
  291.     Set X1 = 204     Set X2 = 212
  292.     Set Y1 = 413    Set Y2 = 528
  293. BlueScale:
  294.     If X1 >= 810 then Goto EndBlue    
  295.     UsePen(NULL,1, Red, Green, Blue)
  296.     UseBrush(SOLID,Red,Green,Blue)
  297.     DrawRectangle(X1,Y1,X2,Y2)
  298.     Set X1 = X1 + 7        Set X2 = X2 + 7
  299.     Set Blue = Blue + 3    
  300.     If Blue > 255 Then Blue = 255
  301.     Goto BlueScale
  302. EndBlue:
  303.     If Draw_All_Grids = 1 Then Goto Grid3
  304.  
  305.     UseBrush(NULL,0,0,0)
  306.     UsePen(SOLID,1,255,255,255)    
  307.     DrawRectangle(203,178,813,529)    
  308.  
  309.     Goto Wait_For_Input
  310.  
  311.  
  312. Grid3:
  313.     SetMouse()
  314.     UseBrush(NULL,0,0,0)
  315.     UsePen(SOLID,1,255,255,255)
  316.     DrawRectangle(203,178,813,529)
  317.     DrawLine(204,295,812,295)
  318.     DrawLine(204,412,812,412)
  319. InitCyan:
  320.     Set Red = 0
  321.     Set Green = 0
  322.     Set Blue = 0
  323.     Set X1 = 803     Set X2 = 812
  324.     Set Y1 = 237    Set Y2 = 294
  325.  
  326. CyanScale:
  327.     If X1 <= 202 then Goto EndCyan    
  328.     UsePen(NULL,1, Red, Green, Blue)
  329.     UseBrush(SOLID,Red,Green,Blue)
  330.     DrawRectangle(X1,Y1,X2,Y2)
  331.     If X1 >= 794 Then Set X1 = X1 - 16
  332.     Set X1 = X1 - 8        Set X2 = X2 - 8
  333.     Set Green = Green + 3
  334.     Set Blue = Blue + 3    
  335.     Goto CyanScale
  336. EndCyan:
  337. InitMagenta:
  338.     Set Red = 0
  339.     Set Green = 0
  340.     Set Blue = 0
  341.     Set X1 = 803     Set X2 = 812
  342.     Set Y1 = 353    Set Y2 = 411
  343. MagentaScale:
  344.     If X1 <= 202 then Goto EndMagenta    
  345.     UsePen(NULL,1, Red, Green, Blue)
  346.     UseBrush(SOLID,Red,Green,Blue)
  347.     DrawRectangle(X1,Y1,X2,Y2)
  348.     If X1 >= 794 then Set X1 = X1 - 16
  349.     Set X1 = X1 - 8        Set X2 = X2 - 8
  350.     Set Red = Red + 3    
  351.     Set Blue = Blue + 3
  352.     Goto MagentaScale
  353. EndMagenta:
  354. InitYellow:
  355.     Set Red = 0
  356.     Set Green = 0
  357.     Set Blue = 0
  358.     Set X1 = 803     Set X2 = 812
  359.     Set Y1 = 470    Set Y2 = 528
  360. YellowScale:
  361.     If X1 <= 202 then Goto EndYellow    
  362.     UsePen(NULL,1, Red, Green, Blue)
  363.     UseBrush(SOLID,Red,Green,Blue)
  364.     DrawRectangle(X1,Y1,X2,Y2)
  365.     If X1 >= 794 then Set X1 = X1 - 16
  366.     Set X1 = X1 - 8        Set X2 = X2 - 8
  367.     Set Red = Red + 3    
  368.     Set Green = Green + 3
  369.     Goto YellowScale
  370. EndYellow:
  371.     If Draw_All_Grids = 1 Then Goto Geom
  372.     Goto Wait_For_Input    
  373.  
  374. Geom:
  375.     UseBrush(NULL,0,0,0)
  376.     UsePen(SOLID,2,255,255,0)
  377.     DrawEllipse(175,19,848,683)
  378.     UsePen(SOLID,2,255,0,255)
  379.     DrawEllipse(225,60,798,633)
  380.     UsePen(SOLID,2,0,255,255)
  381.     DrawEllipse(275,110,748,583)
  382.     SetMouse(0,0,1024,768,GetXY,X,Y)
  383.  
  384.     Set Draw_All_Grids = 0
  385.  
  386.     Goto Wait_for_Input
  387.  
  388.  
  389. Locate:
  390.     Goto Wait_for_Input
  391.  
  392. Maximize:
  393.     WinShow(Title$,MAXIMIZE,Res)
  394.     Goto Wait_for_Input
  395.  
  396. Help_Wedge:
  397.     MessageBox(OK,1,INFORMATION,
  398. "The Color Wedges start from Black on the left and
  399. end up with the primary colors (Red-Green-blue) and 
  400. their opposites (Yellow-Megenta-Cyan) on the right.
  401.  
  402. There is also a greyscale wedge shown, starting from 
  403. Black on the left and ending with White on the right.
  404. The monitor colour balance should be adjusted so that
  405. there is no colour shading in the greyscale.
  406.  
  407. Click on the right mouse to invert the colors in the
  408. client rectangle.",
  409.         "Colour Wedge",Res)
  410.     Goto Wait_For_Input
  411.  
  412. Help_Pattern:
  413.     MessageBox(OK,1,INFORMATION,
  414. "This pattern consists of 3 interlaced circles.
  415. These serve as reference for the vertical and 
  416. horizontal display size of your monitor. Adjust
  417. your monitor so that the circle is round, rather
  418. than an ellipse.
  419.  
  420. It also shows you the coordinates of any pixel
  421. you point at on the screen using the left mouse.
  422.  
  423. Click on the right mouse to invert the colors in the
  424. client rectangle.",
  425.     "Pattern and Coordinates",Res)
  426.     Goto Wait_For_Input
  427.  
  428. Help_Grids:
  429.     MessageBox(OK,1,INFORMATION,
  430. "Grid 1:
  431. Draws a square grid on the screen consisting
  432. of any choosen size, with the default value of 33.
  433.  
  434. Grid 2:
  435. Draws 4 bull's eye patterns, each near one of the 
  436. corners f the screen. There are also 3 wedges using
  437. the primary colors (Red-Green-Blue) shown in
  438. the middle of the screen inside a rectangle.
  439.  
  440. This can help you adjust the overall display of
  441. your monitor (colors and position) if needed.
  442.  
  443. Grid 3:
  444. This grid is an addition to the previous
  445. one in that it prints 3 more wedges using
  446. the opposites (Yellow-Magenta-Cyan) of the
  447. primary colors.
  448.  
  449. Draw All:
  450. This last option first displays Grid 1 with the
  451. default value of 33 being used. It next adds
  452. Grid 2 and 3 to the display and finishes it
  453. with the Pattern/coordinates utility.
  454.  
  455. Click on the right mouse to invert the colors in the
  456. client rectangle.",
  457.     "All the Grids",Res)
  458.     Goto Wait_For_Input
  459.  
  460. About:
  461.     MessageBox(OK,1,INFORMATION,
  462. "VR299Set is Copyright ⌐ (1994-1995)
  463. VYSOR Integration Inc.,
  464. Gatineau, Quebec, CANADA",
  465.     "About VR299SET",Res)    
  466.  
  467.     Goto Wait_For_Input
  468.  
  469. Run_Leave:
  470.     End
  471.  
  472. Bitmaps:
  473.     Set Image$ = SourceDir$ + "\square.bmp"
  474.     DrawBitMap(50,25,Image$)
  475.     DrawBitMap(808,25,Image$)
  476.     DrawBitMap(50,528,Image$)
  477.     DrawBitMap(808,528,Image$)
  478.     Return
  479. SData:
  480.     Set SX1 = 50    Set SY1 = 25
  481.     Gosub Squares
  482.     Set SX1 = 817    Set SY1 = 25
  483.     Gosub Squares
  484.     Set SX1 = 50    Set SY1 = 532
  485.     Gosub Squares
  486.     Set SX1 = 817    Set SY1 = 532
  487.     Gosub Squares
  488.     Return
  489. Squares:
  490.     UseBrush(NULL,0,0,0)
  491.     UsePen(SOLID,1,255,255,255)
  492.     Set SX2 = SX1 + 150    Set SY2 = SY1 + 150
  493.     DrawRectangle(SX1,SY1,SX2,SY2)
  494.     Set SX1 = SX1 + 1    Set SY1 = SY1 + 1
  495.     Set SX2 = SX2 - 1    Set SY2 = SY2 - 1
  496.     DrawEllipse(SX1,SY1,SX2,SY2) 
  497.     Set SX1 = SX1 + 20    Set SY1 = SY1 + 20
  498.     Set SX2 = SX2 - 20    Set SY2 = SY2 - 20
  499.     DrawEllipse(SX1,SY1,SX2,SY2)
  500.     Set SX1 = SX1 + 20    Set SY1 = SY1 + 20
  501.     Set SX2 = SX2 - 20    Set SY2 = SY2 - 20
  502.     DrawEllipse(SX1,SY1,SX2,SY2)
  503.     Set SX1 = SX1 + 20    Set SY1 = SY1 + 20
  504.     Set SX2 = SX2 - 20    Set SY2 = SY2 - 20
  505.     DrawEllipse(SX1,SY1,SX2,SY2)
  506.     Set SX1 = SX1 + 5    Set SY1 = SY1 + 5
  507.     UseBrush(SOLID,255,255,0)
  508.     DrawFlood(SX1,SY1,255,255,255)
  509.     Set SX1 = SX1 -15    Set SY1 = SY1 - 15
  510.     UseBrush(SOLID,0,255,0)
  511.     DrawFlood(SX1, SY1,255,255,255)
  512.     Set SX1 = SX1 - 10    Set SY1 = SY1 - 10
  513.     UseBrush(SOLID,0,0,255)
  514.     DrawFlood(SX1,SY1,255,255,255)
  515.     Set SX1 = SX1 - 10    Set SY1 = SY1 - 10
  516.     USeBrush(SOLID,255,0,0)
  517.     DrawFlood(SX1,SY1,255,255,255)
  518.     Return